/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package redinftel.formularios;

import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import redinftel.entidades.Amistad;
import redinftel.entidades.Usuario;
import redinftel.sesiones.AmistadFacadeRemote;
import redinftel.sesiones.MensajeFacadeRemote;

/**
 *Clase que me notifica de los diferentes eventos
 *
 * @author Six Degrees Team
 */
@ManagedBean
@RequestScoped
public class NotificacionesBean {
    @EJB
    private MensajeFacadeRemote mensajeFacade;
    @EJB
    private AmistadFacadeRemote amistadFacade;
    List<Amistad> listaPendientes;
    int numeroPendientes;
    int numeroMensajes;
    Usuario usuario;
    int hayNotificaciones;

    public int getHayNotificaciones() {
        this.getUsuario();
        numeroMensajes = mensajeFacade.obtenerNoLeidos(usuario);
        listaPendientes=amistadFacade.obtenerPendientes(usuario);
        if(listaPendientes.isEmpty()){
            numeroPendientes=0;
        }
        else {
            numeroPendientes=listaPendientes.size();
        }
       hayNotificaciones = numeroMensajes+numeroPendientes;
       return hayNotificaciones;
    }

    public void setHayNotificaciones(int hayNotificaciones) {
        this.hayNotificaciones = hayNotificaciones;
    }

/**
 *
 * @return devuelve el numero de mensajes
 */
    public int getNumeroMensajes() {
        return numeroMensajes;
    }

    public void setNumeroMensajes(int numeroMensajes) {
        this.numeroMensajes = numeroMensajes;
    }

    public Usuario getUsuario() {
        FacesContext fctx = FacesContext.getCurrentInstance();
        HttpSession session = (HttpSession) fctx.getExternalContext().getSession(false);
        usuario = (Usuario) session.getAttribute("usuario");
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public List<Amistad> getListaPendientes() {
        return listaPendientes;
    }

    public void setListaPendientes(List<Amistad> listaPendientes) {
        this.listaPendientes = listaPendientes;
    }
/**
 *
 * @return numero pendientes de mensajes
 */
    public int getNumeroPendientes() {
        return numeroPendientes;
    }

    public void setNumeroPendientes(int numeroPendientes) {
        this.numeroPendientes = numeroPendientes;
    }



    /** Creates a new instance of NotificacionesBean */
    public NotificacionesBean() {
          ChangeLocaleBean.cambiar();
    }

}
